package co.edu.udea.xyz.dto;

import java.io.Serializable;
import java.util.Date;

/**
 * DTO para la tabla SOLICITUDES
 * @author cesarguapacha
 *
 */
public class Solicitud implements Serializable{
	/**
	 * identificador de la Solicitud.
	 */
	private int idSolicitud;
	/**
	 * Estado de la Solicitud.
	 */
	private String estado;
	/**
	 *  Fecha de envio de la Solicitud.
	 */
	private Date fecha_envio;
	/**
	 *  Fecha de respuesta de la Solicitud.
	 */
	private Date fecha_respuesta;
	/**
	 * tipo de la Solicitud.
	 */
	private int tipo_Solicitud;
	/**
	 *  Texto de la Solicitud.
	 */
	private String texto_Solicitud;
	/**
	 * Respuesta de la Solicitud.
	 */
	private String texto_Respuesta;
	
	/**
	 * Cliente que envia la Solicitud.
	 */
	private Cliente cliente;
	/**
	 *  Producto relacionado en la Solicitud.
	 */
	private Producto producto;
	/**
	 *  Sucursal donde se realiza la Solicitud.
	 */
	private Sucursal sucursal;
	/**
	 *  Encuesta de la Solicitud.
	 */
	private Encuesta encuesta;
	/**
	 * Empleado que respondio la Solicitud.
	 */
	private Empleado gestor;

	public Solicitud() {
		// TODO Auto-generated constructor stub
	}
	/**
	 * Obtener claveprimaria
	 * @return idSolicitud
	 */
	public int getIdSolicitud() {
		return idSolicitud;
	}

	public void setIdSolicitud(int idSolicitud) {
		this.idSolicitud = idSolicitud;
	}
	/**
	 * Obtener Estado solicitud
	 * -ENVIADA
	 * -ABIERTA
	 * -RESUELTA
	 * -ENCUESTADO
	 * -TABULADA
	 * @return estado
	 */
	public String getEstado() {
		return estado;
	}
	/**
	 * Cambiar Estado de solicitud a:
	 * -ENVIADA
	 * -ABIERTA
	 * -RESUELTA
	 * -ENCUESTADO
	 * -TABULADA
	 * @param estado
	 */
	public void setEstado(String estado) {
		this.estado = estado;
	}

	public Date getFecha_envio() {
		return fecha_envio;
	}
	
	/**
	 * Fecha en que se realiza la solicitud por parte del cliente
	 * @param fecha_envio
	 */
	public void setFecha_envio(Date fecha_envio) {
		this.fecha_envio = fecha_envio;
	}

	public Date getFecha_respuesta() {
		return fecha_respuesta;
	}

	public void setFecha_respuesta(Date fecha_respuesta) {
		this.fecha_respuesta = fecha_respuesta;
	}
	/**
	 * Retorna el tipo de solicitud
	 * -1-. PETICION
	 * -2-. QUEJA
	 * -3-. RECLAMO
	 * -4-. SUGERENCIA
	 * @return el codigo del tipo de solicitud.
	 */
	public int getTipo_Solicitud() {
		return tipo_Solicitud;
	}
	
	/**
	 * Tipo de solicitud
	 * Ingrese el numero segun la opcion:
	 * -1-. PETICION
	 * -2-. QUEJA
	 * -3-. RECLAMO
	 * -4-. SUGERENCIA
	 * @param tipo_Solicitud
	 */
	public void setTipo_Solicitud(int tipo_Solicitud) {
		this.tipo_Solicitud = tipo_Solicitud;
	}
	
	/**
	 * 
	 * @return
	 */
	public String getTexto_Solicitud() {
		return texto_Solicitud;
	}
	
	/**
	 * Solicitud realizada por el cliente
	 * @param texto_Solicitud
	 */
	public void setTexto_Solicitud(String texto_Solicitud) {
		this.texto_Solicitud = texto_Solicitud;
	}

	public String getTexto_Respuesta() {
		return texto_Respuesta;
	}
	
	/**
	 * Respuesta a la solicitud por parte del gestor.
	 * @param texto_Respuesta
	 */
	public void setTexto_Respuesta(String texto_Respuesta) {
		this.texto_Respuesta = texto_Respuesta;
	}

	public Cliente getCliente() {
		return cliente;
	}
	
	/**
	 * Cliente que realiza la solicitud
	 * @param cliente
	 */
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Producto getProducto() {
		return producto;
	}

	/**
	 * Producto relacionado con la solicitud
	 * @param producto
	 */
	public void setProducto(Producto producto) {
		this.producto = producto;
	}

	public Sucursal getSucursal() {
		return sucursal;
	}
	
	/**
	 * Sucursal que vendio el producto y a quien se dirige la solicitud.
	 * @param sucursal
	 */
	public void setSucursal(Sucursal sucursal) {
		this.sucursal = sucursal;
	}

	public Encuesta getEncuesta() {
		return encuesta;
	}
	
	/**
	 * Encuesta que debe responder el cliente 
	 * @param encuesta
	 */
	public void setEncuesta(Encuesta encuesta) {
		this.encuesta = encuesta;
	}

	public Empleado getGestor() {
		return gestor;
	}
	
	/**
	 * Se relaciona el gestor que atiende la solicitud.
	 * @param gestor
	 */
	public void setGestor(Empleado gestor) {
		this.gestor = gestor;
	}

	
	
}
